package org.autumn.distributed;


/**
 * 分布式事务
 */
public class DistributedTransaction {
    /**
     * 事务概念
     * 原子性 atomicity
     * 一致性 consistency
     * 隔离性 isolation
     * 持久性 durability
     *
     * 分布式事务概念
     *  事务的参与者 服务器 数据源 事务管理器 不再同一个节点上
     *  需要保证多节点的事务问题
     *
     *
     * 刚性事务 ACID
     * 柔性事务 CAP or BASE
     *
     * CAP 理论
     *  一致性 consistency
     *  可用性 availability 非故障节点在合理的时间返回合理的响应
     *  分区容错性 Partition tolerance 网络不是100%可靠
     *
     *  ca 无法保证成立
     *      如果我们选择ca放弃p 当分区出现故障时,为了保证一致性C,
     *    这个时候需要拒绝请求,就不能满足可用性A,所有无法成立
     *  ap
     *      放弃强一致性,保证最终一致性
     *  cp
     *      放弃可用性 非故障节点在合理的时间返回合理的响应
     *
     * BASE 理论
     *  核心思想,达到最终一致性即可 就是ap
     *
     * 分布式事务解决方案
     *  DTP-XA-2pc
     *  DTP模型
     *      应用程序 ap
     *      资源管理器 rm
     *      事务管理器 tm
     *      通信资源管理器
     *      通信协议
     *  XA
     *    就是资源管理器和事务管理器之间的通信接口
     *
     *  XA和二阶段提交协议之间的关系
     *   XA规范定义了二阶段提交中所需要的接口
     *      TCC       XA
     *      try      prepare
     *      confirm  commit
     *      cancel   rollback
     *
     *
     *  JTA-XA-atomikos
     *  JTA
     *      可以认为JTA是XA规范的Java版
     *      atomikos 是JTA是其中一种实现
     *
     *
     *
     *
     */
}
